/**
 * Description:
 * Class Name:PredicateTest2
 * Date:2022/2/26 11:19
 *
 * @author LTisme
 * @version JAVA17
 */
package 疯狂Java讲义.第8章_Java集合._8_2_Java11增强的Collection和Iterator接口._8_2_5_使用Predicate操作集合;

import java.util.Collection;
import java.util.HashSet;
import java.util.function.Predicate;

public class PredicateTest2 {
    public static int calAll(Collection c, Predicate p){
        int total = 0;
        for (var obj :
                c) {
            // 使用Predicate的test()方法来判断对象是否满足Predicate指定的条件
            if (p.test(obj)){
                total++;
            }
        }
        return total;
    }

    public static void main(String[] args) {
        // 创建一个集合
        var books = new HashSet();
        books.add("book1");
        books.add("book2");
        books.add("book3");
        books.add("crazy about it");

        // 统计书名包含book子串的图书数量
        System.out.println(calAll(books, ele->((String) ele).contains("book")));
        // 统计书名包含it子串的图书数量
        System.out.println(calAll(books, ele->((String) ele).contains("it")));
        // 统计书名长度大于10的图书数量
        System.out.println(calAll(books, ele->((String) ele).length() > 10));
    }
}
//3
//1
//1